1. Field of the Invention
The invention relates generally to Serial Attached SCSI (SAS) domains and more specifically relates to enhanced SAS expanders.
2. Discussion of Related Art
In SAS domains (i.e., electronic systems implementing a switched SAS fabric), it is common for a Redundant Array of Independent Disks (RAID) controller to manage a large number of RAID logical volumes. RAID volumes offer benefits over other logical volumes because RAID volumes provide striped data for enhanced performance, yet also provide redundancy information for data.
SAS storage devices that provision RAID logical volumes are coupled for communication with the RAID controller via one or more SAS expanders. The SAS expanders route commands from the RAID controller to the appropriate storage devices.
When a RAID controller manages RAID volumes, common tasks may include managing input and output (I/O) commands from a host device, performing consistency checks on the volumes, etc. If data on a volume is corrupted, it may further be desirable for the controller to initiate a rebuild of the damaged part of the RAID volume (using redundancy information within the volume). For example, data from a faulty storage device may be transferred to a “hot spare” storage device.
Rebuilding a logical volume takes up substantial amounts of processing power at the controller, because the controller generates and transmits a vast number of I/O commands to various storage devices as it rebuilds the volume. This is undesirable because the rebuild occupies processing resources at the controller that could otherwise be used to process host I/O. Furthermore, the rebuild process can reduce the available bandwidth of the entire SAS domain, because communication channels between the controller and the expanders that route rebuild I/O to the appropriate storage devices may be occupied for the entire duration of the rebuild process. This precludes other connections that would use the same pathways through the SAS expanders.
Thus it is an ongoing challenge to enhance the performance of a RAID controller in processing host I/O when a RAID volume is being rebuilt.